package TpFinal;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;

public class ServidorSemaforo extends Thread{
	
	/**
	 * el servidor es el que se encarga de rotar cual de los semaforos
	 * esta en verde
	 * a traves de mensajes con cada uno de los semaforos 
	 * comunicandole para que se pongan en verde y escuchando cuando
	 * estos se ponen en rojo
	 */
	public void run(){
		try {
			ServerSocket servidor = new ServerSocket(4500);
			Socket cliente1 = servidor.accept();
			Socket cliente2 = servidor.accept();
			Socket cliente3 = servidor.accept();
			BufferedReader read1 = new BufferedReader(new InputStreamReader(
					cliente1.getInputStream()));
			BufferedReader read2 = new BufferedReader(new InputStreamReader(
					cliente2.getInputStream()));
			BufferedReader read3 = new BufferedReader(new InputStreamReader(
					cliente3.getInputStream()));
			
			PrintStream output1 = new PrintStream(cliente1.getOutputStream());
			PrintStream output2 = new PrintStream(cliente2.getOutputStream());
			PrintStream output3 = new PrintStream(cliente3.getOutputStream());

			while(true){
				output1.println("verde");
				read1.readLine();
				output2.println("verde");
				read2.readLine();
				output3.println("verde");
				read3.readLine();
			}
			
		} catch (Exception e) {
			System.err.println("error en el servidor");
		}
	}
}
